/*
 * LocalizedTextSource.java
 *
 *  created: 3.2.2012
 *  charset: UTF-8
 *  license: MIT (X11) (See LICENSE file for full license)
 */

package cz.mp.util.app;

import java.text.MessageFormat;
import java.util.MissingResourceException;
import java.util.ResourceBundle;


/**
 *
 * @author Martin Pokorný
 * @version 0.1
 */
public class LocalizedTextSource {

    /** */
    private LocalizedTextSource() {
    }

    /** 
     * Získání formátovaného lokalizovaného textu. 
     * 
     * @param bundle  zdroj lokalizovaných textů
     * @param key  klíč lokalizovaného textu
     * @param args  volitelné parametry textu
     * @return  lokalizovaný text nebo text v {@code key}, když ke klíči
     *      není možno najít lokalizovaný text
     * @throws IllegalArgumentException  pokud je {@code key} prázdný.
     */     
    public static String getLocalizedText(ResourceBundle bundle, 
            String key, Object... args) {
        if (key == null || key.trim().length() == 0) {
            throw new IllegalArgumentException("resource key is blank");
        }
        try {
            bundle.getString(key);
        } catch (MissingResourceException ex) {
            return key;
        }
        
        return MessageFormat.format(bundle.getString(key), args);
    }       

}   // LocalizedTextSource.java
